With the advent of more robust wireless communications systems, compatible mobile communication devices are becoming more prevalent, as well as advanced. Where in the past such mobile communication devices typically accommodated either voice transmission (cell phones) or text transmission (pagers and PDAs), today's consumer often demands a combination device capable of performing both types of transmissions, including even sending and receiving e-mail. Furthermore, these higher-performance devices can also be capable of sending and receiving other types of data including that which allows the viewing and use of Internet websites. These higher level functionalities necessarily require greater user interaction with the devices through included user interfaces (UIs) which may have originally been designed to accommodate making and receiving telephone calls and sending messages over a related Short Messaging Service (SMS). As might be expected, suppliers of such mobile communication devices and the related service providers are anxious to meet these customer requirements, but the demands of these more advanced functionalities have in many circumstances rendered the traditional user interfaces unsatisfactory, a situation that has caused designers to have to improve the UIs through which users input information and control these sophisticated operations.
Most application programs are menu-driven as opposed to being command-driven. Menu-driven applications provide a list of possible action commands or items from which a user may choose, while command-driven applications require users to enter explicit commands. Thus, menu-driven applications are generally easier for the average user to learn than are command-driven applications. Menus are typically implemented as a list of textual or graphical choices (i.e., menu items) from which a user can choose. Thus, menus allow a user to select a menu item, for example, by pointing to the item with a mouse and then clicking on the item. Examples of other methods of selecting menu items include highlighting an item and then hitting the “return” key or “enter” key, and pressing directly on a menu item through a touch-sensitive screen.
One particularly useful type of menu is a hierarchical menu. Hierarchical menus typically present a parent menu that has selectable menu items. The selection of each menu item normally causes another menu, or submenu, to be displayed next to the currently displayed menu. The submenu has additional menu choices that are related to the selected parent menu item. Also, the parent menu results in the display of the submenu. The depth of a hierarchical menu can extend in this manner to many levels of submenus.
The conventional hierarchical menus generally lay out from left to right across a display screen as menu choices are selected. This menu format provides various advantages such as retaining previous and current menus on the display screen at the same time. This provides a historical menu map as menu selections are made and their corresponding submenus are displayed across the screen. Users can therefore review previous menu selections that have been made while progressing to the most recently displayed menu—thus making it easier to move between different menu items and menu levels.
Although such hierarchical menus provide useful advantages, there are scenarios in which their use is impracticable. One such scenario is when hierarchical menus are used on devices having small display screens. The problems presented when attempting to implement conventional hierarchical menus on small-screen devices have generally discouraged the use of hierarchical menus with such devices.
Hierarchical menus generally lay out across the display screen from left to right. On small-screen devices where the room on the screen is not wide enough to accommodate all of the menus, the menus often lay out across the screen in both directions, from left to right and back again. In this scenario, the menus typically begin to overlap one another, creating various problems. Overlapping menus can be confusing to the user. Overlapping menus can make it difficult for a user to discern previous menu selections which can, in turn, make it difficult to determine how to return to previous menus to make different menu selections. Thus, one of the intended benefits of a hierarchical menu can be undermined when the hierarchical menu is implemented on a small-screen device.
Overlapping menus can also be difficult to work with on small-screen devices (as well as others) that employ pen-based or stylus-based touch-sensitive screens. With such devices, it is often difficult to maintain contact continuity between menus on the screen when the menus are overlapping. In other words, it is easy to move off of menus with small-screen, touch-based devices. If continuity is lost when moving from one menu to another, menus will often disappear from the screen, causing the user to have to go back and reactivate the menu from a prior menu. This problem becomes worse when using pen-based devices that “track”. In the present context, the terminology of “tracking” is used to indicate a situation in which a cursor on the screen follows (tracks) the movement of the pen as the pen moves over the screen even though the pen is not touching the screen. Tracking is lost if the pen is pulled too far away from the screen. Thus, pen-based devices that “track” tend to lose more menus when hierarchical menus are employed.
One method of addressing this issue involves displaying submenus in place of a parent menu, and vice versa, when the appropriate menu items are selected from within the parent menus and submenus. Like a typical hierarchical menu, the depth of a hierarchical in-place menu can extend in this manner to many levels of submenus such as second, third, fourth and fifth levels, with submenus being parent menus to other submenus. Parent menu items selected from within parent menus are displayed within submenus as links back to previous parent menus and are separated from that submenu's items by a divider. For example, parent menu item “Launch App” is from a parent menu and thus includes a forward pointer that indicates a submenu will replace the first parent menu upon selection of “Launch App”. In each of the submenus, “Launch App” has a backward pointing arrow that facilitates going back to a previous menu in the hierarchy. However, each of the menus provides the full complement of available menu items. This can be overwhelming for a novice user and irritating to an experienced user. This problem is exacerbated to an extent by the addition of a hierarchical history of parent menus added to the list.
Another approach is the use of short menus and full menus. A full or extended menu, lists all available menu items at that particular level and a short menu is a subset of the full menu. The short menu can be a dynamic menu in that a user selects menu items from the corresponding extended menu to be included in the short menu. However, navigating such menus can be difficult when using the navigation tools of a mobile communication device in that a user has to select or highlight the desired menu item when the menu items are in a vertical list.